package com.idealighter.game.roomcard.struct.gamgcfg.value;

import com.idealighter.game.roomcard.games.mustniuniu.constant.MustNiuNiuAdvanceOption;
import com.idealighter.game.roomcard.games.mustniuniu.constant.MustNiuNiuCardType;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.FreeCallBankerGameInfoCfgPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MultipleOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuAdvanceOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuBankerChipPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuBetOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuCallBankerMultiplePo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuCardMultiplePo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuCardSpecialMultiplePo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuExtrBetOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuRoundPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuSeatPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuStartOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.NiuNiuBeBankerGameInfoCfgPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.OwnerBeBankerGameInfoCfgPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.ShowCardCallBankerGameInfoCfgPo;
import com.idealighter.utils.json.JsonUtil;
import java.util.Arrays;

public class MustNiuNiuGameCfgValueGeneratorTool {
  /**
   * @Title main.
   * @Description 生成json数据,方便保存到数据库
   * @date 2018年6月14日 下午4:25:27
   * @param args .
   */
  public static void main(String[] args) {
    NiuNiuRoomCardGameCfgValue gameCfg = new NiuNiuRoomCardGameCfgValue();
    gameCfg.setNiuniuBeBanker(new NiuNiuBeBankerGameInfoCfgPo());
    gameCfg.setOwnerBeBanker(new OwnerBeBankerGameInfoCfgPo());
    gameCfg.setFreeCallBanker(new FreeCallBankerGameInfoCfgPo());
    gameCfg.setShowCardCallBanker(new ShowCardCallBankerGameInfoCfgPo());
    new MustNiuNiuGameCfgValueGeneratorTool().initData(gameCfg);

    System.out.println(JsonUtil.toJson(gameCfg));
  }

  private void initData(NiuNiuRoomCardGameCfgValue gameCfg) {
    initNiuNiuBeBanker(gameCfg.getNiuniuBeBanker());
    initOwnerBeBanker(gameCfg.getOwnerBeBanker());
    initFreeCallBanker(gameCfg.getFreeCallBanker());
    initShowCardCallBanker(gameCfg.getShowCardCallBanker());
  }

  private void initNiuNiuBeBanker(NiuNiuBeBankerGameInfoCfgPo cfg) {
    cfg.setSeats(Arrays.asList(//
        new MustNiuNiuSeatPo(6, "6人场"), //
        new MustNiuNiuSeatPo(8, "8人场"))); // 座位

    cfg.setBetOptions(Arrays.asList(//
        new MustNiuNiuBetOptionPo(1, Arrays.asList(1, 2), "1/2"),
        new MustNiuNiuBetOptionPo(2, Arrays.asList(2, 4), "2/4"),
        new MustNiuNiuBetOptionPo(3, Arrays.asList(4, 8), "4/8"),
        new MustNiuNiuBetOptionPo(4, Arrays.asList(5, 10), "5/10"))); // 底分

    cfg.setRounds(Arrays.asList(//
        new MustNiuNiuRoundPo(10, "10局"), //
        new MustNiuNiuRoundPo(20, "20局"), //
        new MustNiuNiuRoundPo(40, "40局"))); // 局数

    cfg.setFees(Arrays.asList(1, 2, 3, 4, 5, 6)); // 房费

    cfg.setStartOptions(Arrays.asList(//
        new MustNiuNiuStartOptionPo(1, 0, "手动开桌"), //
        new MustNiuNiuStartOptionPo(2, 4, "满4人开桌"), //
        new MustNiuNiuStartOptionPo(3, 5, "满5人开桌"), //
        new MustNiuNiuStartOptionPo(4, 6, "满6人开桌"))); // 开局方式

    cfg.setExtrBetOptions(Arrays.asList(//
        new MustNiuNiuExtrBetOptionPo(1, 0, "无推注"), //
        new MustNiuNiuExtrBetOptionPo(2, 8, "8倍"), //
        new MustNiuNiuExtrBetOptionPo(3, 16, "16倍"))); // 推注选项

    cfg.setMultiples(Arrays.asList(//
        new MustNiuNiuCardMultiplePo(1, Arrays.asList(//
            new MultipleOptionPo(MustNiuNiuCardType.NIU_NIU.niu, 4), // 牛牛-4倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_9.niu, 3), // 牛9-3倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_8.niu, 2), // 牛8-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_7.niu, 2), // 牛7-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_6.niu, 1), // 牛6-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_5.niu, 1), // 牛5-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_4.niu, 1), // 牛4-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_3.niu, 1), // 牛3-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_2.niu, 1), // 牛2-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_1.niu, 1), // 牛1-1倍
            new MultipleOptionPo(MustNiuNiuCardType.MEI_NIU.niu, 1) // 没牛-1倍
        ), "牛牛x4 牛九x3 牛八x2 牛七x2"),

        new MustNiuNiuCardMultiplePo(2, Arrays.asList(//
            new MultipleOptionPo(MustNiuNiuCardType.NIU_NIU.niu, 3), // 牛牛-3倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_9.niu, 2), // 牛9-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_8.niu, 2), // 牛8-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_7.niu, 1), // 牛7-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_6.niu, 1), // 牛6-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_5.niu, 1), // 牛5-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_4.niu, 1), // 牛4-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_3.niu, 1), // 牛3-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_2.niu, 1), // 牛2-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_1.niu, 1), // 牛1-1倍
            new MultipleOptionPo(MustNiuNiuCardType.MEI_NIU.niu, 1) // 没牛-1倍
        ), "牛牛x3 牛九x2 牛八x2"))); // 倍数

    cfg.setSpecialMultiples(Arrays.asList(//
        // 顺子牛(5)
        new MustNiuNiuCardSpecialMultiplePo(1, MustNiuNiuCardType.SHUN_ZI.niu, 5, "顺子牛5倍"),
        // 同花牛(5)
        new MustNiuNiuCardSpecialMultiplePo(2, MustNiuNiuCardType.TONG_HUA.niu, 5, "同花牛5倍"),
        // 五花牛(5)
        new MustNiuNiuCardSpecialMultiplePo(3, MustNiuNiuCardType.WU_HUA.niu, 5, "五花牛5倍"),
        // 葫芦牛(6)
        new MustNiuNiuCardSpecialMultiplePo(4, MustNiuNiuCardType.HU_LU.niu, 6, "葫芦牛6倍"),
        // 炸弹牛(7)
        new MustNiuNiuCardSpecialMultiplePo(5, MustNiuNiuCardType.NIU_ZHA.niu, 7, "炸弹牛7倍"),
        // 特殊牌型
        new MustNiuNiuCardSpecialMultiplePo(6, MustNiuNiuCardType.WUXIAO.niu, 8, "五小牛8倍")));

    cfg.setAdvanceOptions(Arrays.asList(//
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.JOIN_DISABLE), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.RUB_CARD_DISABLE), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BET_OTHER), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.JOKER))); // 高级选项
  }

  private void initOwnerBeBanker(OwnerBeBankerGameInfoCfgPo cfg) {
    cfg.setSeats(Arrays.asList(//
        new MustNiuNiuSeatPo(6, "6人场"), //
        new MustNiuNiuSeatPo(8, "8人场"))); // 座位

    cfg.setBetOptions(Arrays.asList(//
        new MustNiuNiuBetOptionPo(1, Arrays.asList(1, 2), "1/2"),
        new MustNiuNiuBetOptionPo(2, Arrays.asList(2, 4), "2/4"),
        new MustNiuNiuBetOptionPo(3, Arrays.asList(4, 8), "4/8"),
        new MustNiuNiuBetOptionPo(4, Arrays.asList(5, 10), "5/10"))); // 底分

    cfg.setRounds(Arrays.asList(//
        new MustNiuNiuRoundPo(10, "10局"), //
        new MustNiuNiuRoundPo(20, "20局"), //
        new MustNiuNiuRoundPo(40, "40局"))); // 局数

    cfg.setFees(Arrays.asList(7, 8, 9, 10, 11, 12)); // 房费

    cfg.setStartOptions(Arrays.asList(//
        new MustNiuNiuStartOptionPo(1, 0, "手动开桌"), //
        new MustNiuNiuStartOptionPo(2, 4, "满4人开桌"), //
        new MustNiuNiuStartOptionPo(3, 5, "满5人开桌"), //
        new MustNiuNiuStartOptionPo(4, 6, "满6人开桌"))); // 开局方式

    cfg.setExtrBetOptions(Arrays.asList(//
        new MustNiuNiuExtrBetOptionPo(1, 0, "无推注"), //
        new MustNiuNiuExtrBetOptionPo(2, 8, "8倍"), //
        new MustNiuNiuExtrBetOptionPo(3, 16, "16倍"))); // 推注选项

    cfg.setMultiples(Arrays.asList(//
        new MustNiuNiuCardMultiplePo(1, Arrays.asList(//
            new MultipleOptionPo(MustNiuNiuCardType.NIU_NIU.niu, 4), // 牛牛-4倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_9.niu, 3), // 牛9-3倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_8.niu, 2), // 牛8-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_7.niu, 2), // 牛7-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_6.niu, 1), // 牛6-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_5.niu, 1), // 牛5-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_4.niu, 1), // 牛4-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_3.niu, 1), // 牛3-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_2.niu, 1), // 牛2-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_1.niu, 1), // 牛1-1倍
            new MultipleOptionPo(MustNiuNiuCardType.MEI_NIU.niu, 1) // 没牛-1倍
        ), "牛牛x4 牛九x3 牛八x2 牛七x2"),

        new MustNiuNiuCardMultiplePo(2, Arrays.asList(//
            new MultipleOptionPo(MustNiuNiuCardType.NIU_NIU.niu, 3), // 牛牛-3倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_9.niu, 2), // 牛9-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_8.niu, 2), // 牛8-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_7.niu, 1), // 牛7-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_6.niu, 1), // 牛6-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_5.niu, 1), // 牛5-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_4.niu, 1), // 牛4-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_3.niu, 1), // 牛3-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_2.niu, 1), // 牛2-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_1.niu, 1), // 牛1-1倍
            new MultipleOptionPo(MustNiuNiuCardType.MEI_NIU.niu, 1) // 没牛-1倍
        ), "牛牛x3 牛九x2 牛八x2"))); // 倍数

    cfg.setSpecialMultiples(Arrays.asList(//
        // 顺子牛(5)
        new MustNiuNiuCardSpecialMultiplePo(1, MustNiuNiuCardType.SHUN_ZI.niu, 5, "顺子牛5倍"),
        // 同花牛(5)
        new MustNiuNiuCardSpecialMultiplePo(2, MustNiuNiuCardType.TONG_HUA.niu, 5, "同花牛5倍"),
        // 五花牛(5)
        new MustNiuNiuCardSpecialMultiplePo(3, MustNiuNiuCardType.WU_HUA.niu, 5, "五花牛5倍"),
        // 葫芦牛(6)
        new MustNiuNiuCardSpecialMultiplePo(4, MustNiuNiuCardType.HU_LU.niu, 6, "葫芦牛6倍"),
        // 炸弹牛(7)
        new MustNiuNiuCardSpecialMultiplePo(5, MustNiuNiuCardType.NIU_ZHA.niu, 7, "炸弹牛7倍"),
        // 特殊牌型
        new MustNiuNiuCardSpecialMultiplePo(6, MustNiuNiuCardType.WUXIAO.niu, 8, "五小牛8倍")));

    cfg.setBankerChips(Arrays.asList(//
        new MustNiuNiuBankerChipPo(1, 0, "无"), //
        new MustNiuNiuBankerChipPo(2, 100, "100"), //
        new MustNiuNiuBankerChipPo(3, 150, "150"), //
        new MustNiuNiuBankerChipPo(4, 200, "200"))); // 庄家坐庄筹码

    cfg.setAdvanceOptions(Arrays.asList(//
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.JOIN_DISABLE), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.RUB_CARD_DISABLE), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BET_OTHER), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.JOKER))); // 高级选项
  }

  private void initFreeCallBanker(FreeCallBankerGameInfoCfgPo cfg) {
    cfg.setSeats(Arrays.asList(//
        new MustNiuNiuSeatPo(6, "6人场"), //
        new MustNiuNiuSeatPo(8, "8人场"))); // 座位

    cfg.setBetOptions(Arrays.asList(//
        new MustNiuNiuBetOptionPo(1, Arrays.asList(1, 2), "1/2"),
        new MustNiuNiuBetOptionPo(2, Arrays.asList(2, 4), "2/4"),
        new MustNiuNiuBetOptionPo(3, Arrays.asList(4, 8), "4/8"),
        new MustNiuNiuBetOptionPo(4, Arrays.asList(5, 10), "5/10"))); // 底分

    cfg.setRounds(Arrays.asList(//
        new MustNiuNiuRoundPo(10, "10局"), //
        new MustNiuNiuRoundPo(20, "20局"), //
        new MustNiuNiuRoundPo(40, "40局"))); // 局数

    cfg.setFees(Arrays.asList(13, 14, 15, 16, 17, 18)); // 房费

    cfg.setStartOptions(Arrays.asList(//
        new MustNiuNiuStartOptionPo(1, 0, "手动开桌"), //
        new MustNiuNiuStartOptionPo(2, 4, "满4人开桌"), //
        new MustNiuNiuStartOptionPo(3, 5, "满5人开桌"), //
        new MustNiuNiuStartOptionPo(4, 6, "满6人开桌"))); // 开局方式

    cfg.setExtrBetOptions(Arrays.asList(//
        new MustNiuNiuExtrBetOptionPo(1, 0, "无推注"), //
        new MustNiuNiuExtrBetOptionPo(2, 8, "8倍"), //
        new MustNiuNiuExtrBetOptionPo(3, 16, "16倍"))); // 推注选项

    cfg.setMultiples(Arrays.asList(//
        new MustNiuNiuCardMultiplePo(1, Arrays.asList(//
            new MultipleOptionPo(MustNiuNiuCardType.NIU_NIU.niu, 4), // 牛牛-4倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_9.niu, 3), // 牛9-3倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_8.niu, 2), // 牛8-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_7.niu, 2), // 牛7-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_6.niu, 1), // 牛6-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_5.niu, 1), // 牛5-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_4.niu, 1), // 牛4-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_3.niu, 1), // 牛3-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_2.niu, 1), // 牛2-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_1.niu, 1), // 牛1-1倍
            new MultipleOptionPo(MustNiuNiuCardType.MEI_NIU.niu, 1) // 没牛-1倍
        ), "牛牛x4 牛九x3 牛八x2 牛七x2"),

        new MustNiuNiuCardMultiplePo(2, Arrays.asList(//
            new MultipleOptionPo(MustNiuNiuCardType.NIU_NIU.niu, 3), // 牛牛-3倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_9.niu, 2), // 牛9-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_8.niu, 2), // 牛8-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_7.niu, 1), // 牛7-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_6.niu, 1), // 牛6-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_5.niu, 1), // 牛5-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_4.niu, 1), // 牛4-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_3.niu, 1), // 牛3-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_2.niu, 1), // 牛2-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_1.niu, 1), // 牛1-1倍
            new MultipleOptionPo(MustNiuNiuCardType.MEI_NIU.niu, 1) // 没牛-1倍
        ), "牛牛x3 牛九x2 牛八x2"))); // 倍数

    cfg.setSpecialMultiples(Arrays.asList(//
        // 顺子牛(5)
        new MustNiuNiuCardSpecialMultiplePo(1, MustNiuNiuCardType.SHUN_ZI.niu, 5, "顺子牛5倍"),
        // 同花牛(5)
        new MustNiuNiuCardSpecialMultiplePo(2, MustNiuNiuCardType.TONG_HUA.niu, 5, "同花牛5倍"),
        // 五花牛(5)
        new MustNiuNiuCardSpecialMultiplePo(3, MustNiuNiuCardType.WU_HUA.niu, 5, "五花牛5倍"),
        // 葫芦牛(6)
        new MustNiuNiuCardSpecialMultiplePo(4, MustNiuNiuCardType.HU_LU.niu, 6, "葫芦牛6倍"),
        // 炸弹牛(7)
        new MustNiuNiuCardSpecialMultiplePo(5, MustNiuNiuCardType.NIU_ZHA.niu, 7, "炸弹牛7倍"),
        // 特殊牌型
        new MustNiuNiuCardSpecialMultiplePo(6, MustNiuNiuCardType.WUXIAO.niu, 8, "五小牛8倍")));

    cfg.setAdvanceOptions(Arrays.asList(//
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.JOIN_DISABLE), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.RUB_CARD_DISABLE), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BET_OTHER), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BET_LIMIT), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.JOKER), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BLIND_CALL_BANKER), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BET_MULTIPLE))); // 高级选项
  }

  private void initShowCardCallBanker(ShowCardCallBankerGameInfoCfgPo cfg) {
    cfg.setSeats(Arrays.asList(//
        new MustNiuNiuSeatPo(6, "6人场"), //
        new MustNiuNiuSeatPo(8, "8人场"))); // 座位

    cfg.setBetOptions(Arrays.asList(//
        new MustNiuNiuBetOptionPo(1, Arrays.asList(1, 2), "1/2"),
        new MustNiuNiuBetOptionPo(2, Arrays.asList(2, 4), "2/4"),
        new MustNiuNiuBetOptionPo(3, Arrays.asList(4, 8), "4/8"),
        new MustNiuNiuBetOptionPo(4, Arrays.asList(5, 10), "5/10"))); // 底分

    cfg.setRounds(Arrays.asList(//
        new MustNiuNiuRoundPo(10, "10局"), //
        new MustNiuNiuRoundPo(20, "20局"), //
        new MustNiuNiuRoundPo(40, "40局"))); // 局数

    cfg.setFees(Arrays.asList(19, 20, 21, 22, 23, 24)); // 房费

    cfg.setStartOptions(Arrays.asList(//
        new MustNiuNiuStartOptionPo(1, 0, "手动开桌"), //
        new MustNiuNiuStartOptionPo(2, 4, "满4人开桌"), //
        new MustNiuNiuStartOptionPo(3, 5, "满5人开桌"), //
        new MustNiuNiuStartOptionPo(4, 6, "满6人开桌"))); // 开局方式

    cfg.setExtrBetOptions(Arrays.asList(//
        new MustNiuNiuExtrBetOptionPo(1, 0, "无推注"), //
        new MustNiuNiuExtrBetOptionPo(2, 8, "8倍"), //
        new MustNiuNiuExtrBetOptionPo(3, 16, "16倍"))); // 推注选项

    cfg.setCallBankerMultiples(Arrays.asList(//
        new MustNiuNiuCallBankerMultiplePo(1, "1倍"), //
        new MustNiuNiuCallBankerMultiplePo(2, "2倍"), //
        new MustNiuNiuCallBankerMultiplePo(3, "3倍"), //
        new MustNiuNiuCallBankerMultiplePo(4, "4倍"))); // 抢庄最大倍数

    cfg.setMultiples(Arrays.asList(//
        new MustNiuNiuCardMultiplePo(1, Arrays.asList(//
            new MultipleOptionPo(MustNiuNiuCardType.NIU_NIU.niu, 4), // 牛牛-4倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_9.niu, 3), // 牛9-3倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_8.niu, 2), // 牛8-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_7.niu, 2), // 牛7-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_6.niu, 1), // 牛6-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_5.niu, 1), // 牛5-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_4.niu, 1), // 牛4-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_3.niu, 1), // 牛3-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_2.niu, 1), // 牛2-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_1.niu, 1), // 牛1-1倍
            new MultipleOptionPo(MustNiuNiuCardType.MEI_NIU.niu, 1) // 没牛-1倍
        ), "牛牛x4 牛九x3 牛八x2 牛七x2"),

        new MustNiuNiuCardMultiplePo(2, Arrays.asList(//
            new MultipleOptionPo(MustNiuNiuCardType.NIU_NIU.niu, 3), // 牛牛-3倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_9.niu, 2), // 牛9-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_8.niu, 2), // 牛8-2倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_7.niu, 1), // 牛7-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_6.niu, 1), // 牛6-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_5.niu, 1), // 牛5-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_4.niu, 1), // 牛4-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_3.niu, 1), // 牛3-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_2.niu, 1), // 牛2-1倍
            new MultipleOptionPo(MustNiuNiuCardType.NIU_1.niu, 1), // 牛1-1倍
            new MultipleOptionPo(MustNiuNiuCardType.MEI_NIU.niu, 1) // 没牛-1倍
        ), "牛牛x3 牛九x2 牛八x2"))); // 倍数

    cfg.setSpecialMultiples(Arrays.asList(//
        // 顺子牛(5)
        new MustNiuNiuCardSpecialMultiplePo(1, MustNiuNiuCardType.SHUN_ZI.niu, 5, "顺子牛5倍"),
        // 同花牛(5)
        new MustNiuNiuCardSpecialMultiplePo(2, MustNiuNiuCardType.TONG_HUA.niu, 5, "同花牛5倍"),
        // 五花牛(5)
        new MustNiuNiuCardSpecialMultiplePo(3, MustNiuNiuCardType.WU_HUA.niu, 5, "五花牛5倍"),
        // 葫芦牛(6)
        new MustNiuNiuCardSpecialMultiplePo(4, MustNiuNiuCardType.HU_LU.niu, 6, "葫芦牛6倍"),
        // 炸弹牛(7)
        new MustNiuNiuCardSpecialMultiplePo(5, MustNiuNiuCardType.NIU_ZHA.niu, 7, "炸弹牛7倍"),
        // 特殊牌型
        new MustNiuNiuCardSpecialMultiplePo(6, MustNiuNiuCardType.WUXIAO.niu, 8, "五小牛8倍")));

    cfg.setAdvanceOptions(Arrays.asList(//
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.JOIN_DISABLE), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.RUB_CARD_DISABLE), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BET_OTHER), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BET_LIMIT), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.JOKER), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BLIND_CALL_BANKER), //
        new MustNiuNiuAdvanceOptionPo(MustNiuNiuAdvanceOption.BET_MULTIPLE))); // 高级选项
  }
}
